package ctr.stage;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

import javax.swing.JOptionPane;

import configuration.Constante;
import configuration.MessageAppli;
import ctr.util.DateUtil;

import metier.CategorieStage;
import metier.Stage;
import metier.jdbc.stage.CategorieStageJdbc;
import metier.jdbc.stage.StageJdbc;
import vue.MenuControle;
import vue.stage.JPanModifStage;

public class GestModifStage implements ActionListener{
//ATTRIBUTS
private JPanModifStage jPanModifStage;

//CONSTRUCTEURS
public GestModifStage(JPanModifStage jPanModifStage) {
	this.jPanModifStage = jPanModifStage;
}

public GestModifStage() {
}
	
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="Rechercher")
{
	String categorie = this.jPanModifStage.getCBNomCategorieHaut().getSelectedItem().toString();
	String annee = this.jPanModifStage.getTFNomAnnee().getText();
	String anneeDeuXChiffres = annee.substring(2, 4);
	String nomStage = anneeDeuXChiffres+"-"+categorie;
	Stage unStage=StageJdbc.rechercherStageByNom(jdbc.Connexion.getConnexion(), nomStage);
	jPanModifStage.setUnStage(unStage);
	MenuControle.afficherPan(new JPanModifStage(jPanModifStage));
}
else if(e.getActionCommand()=="Modifier")
{
	try
	{
		// Test Date
		Date dateDebutAff = DateUtil.checkDate(Constante.FORMAT_DATE_SHORT, 
				jPanModifStage.getJTFDateDebutAff().getText());
		
		Date dateFinAff = DateUtil.checkDate(Constante.FORMAT_DATE_SHORT, 
				jPanModifStage.getJTFDateFinAff().getText());
		
		if (dateDebutAff == null && dateFinAff == null)
		{
			throw new Exception(MessageAppli.MSG_DATE_MAUVAIS_FORMAT + Constante.FORMAT_DATE_SHORT + " ou non renseignée"  );
		}
		
		String nomCategorieHaut = this.jPanModifStage.getCBNomCategorieHaut().getSelectedItem().toString();
		String annee = this.jPanModifStage.getTFNomAnnee().getText();
		String anneeDeuXChiffres = annee.substring(2, 4);
		String nomStage = anneeDeuXChiffres+"-"+nomCategorieHaut;
		Stage unStage=StageJdbc.rechercherStageByNom(jdbc.Connexion.getConnexion(), nomStage);
		
		String nomCategorieBas = this.jPanModifStage.getCBNomCategorieBas().getSelectedItem().toString();
		
		String nouvNomStage = anneeDeuXChiffres+"-"+nomCategorieBas;
		CategorieStage nouvCatStage = CategorieStageJdbc.rechercherByNom(jdbc.Connexion.getConnexion(), nomCategorieBas);
		
		unStage.setLibelleStage(nouvNomStage);
		unStage.setIdCategorie(nouvCatStage.getIdCategorie());
		unStage.setDateDebut(dateDebutAff);
		unStage.setDateFin(dateFinAff);
		
		//Modification
		StageJdbc.modifier(jdbc.Connexion.getConnexion(), unStage);
		MenuControle.afficherPan(new JPanModifStage("Modifier un stage"));
	}
	catch (Exception e2)
	{
		e2.printStackTrace();
		JOptionPane.showMessageDialog(jPanModifStage, e2.getMessage(), MessageAppli.MSG_TITRE_ERREUR_SAISIE,
				JOptionPane.WARNING_MESSAGE);
	}
	

}
}
}